#include "terminalTab.h"
#include <QLabel>
#include <iostream>
#include <stdio.h>
#include "mainWin.h" // altrimenti non possiamo accedere al metodo del parent per aggiornare la lista dopo la rimozione
#include <QRegExp>
TerminalTab::TerminalTab(KXmlGuiWindow* parent){
  QLabel* closeTxt = new QLabel(QString("<html><head><syle type='text/css'/> </head><body><h4><center>Close the tab to update the list  </center></h4></body></html>"),this);
  setCornerWidget (closeTxt,Qt::TopRightCorner);
  //setHoverCloseButton(true);
  //connect(this,SIGNAL(closeRequest(QWidget*)),this,SLOT(closeTab(QWidget*)));  
  setCloseButtonEnabled( true );

}
void TerminalTab::createTab(QString cmd, const QString packName){
//crea un nuovo terminale e richiama addTab(QWidget *widget, const QString &)
  KLibFactory* factory = KLibLoader::self()->factory("libkonsolepart");
  KParts::Part* p = static_cast<KParts::Part*> (factory->create(this,"terminal", QStringList() << "terminal"));
  assert(p);
  terminalInterface = qobject_cast<TerminalInterface*> (p);
  //terminalInterface->showShellInDir(QDir::home().path());
  //terminalInterface->startProgram( QString::fromUtf8( "/usr/bin/python" ), QStringList() << "python");   // removepkg
  QWidget* term = p->widget();
  
  // aggiungi packName ad una QList globale, servira' per evitare la rimozione di piu' pacchetti
  addTab(term,packName);
}
/*
void TerminalTab::closeTab(QWidget *widg) {
//dall'id dello widget risaliamo al testo del tab - viene spurgato dalle & - richiama updateList del parent
  int idx = indexOf (widg);
  QString removedFile = tabText(idx);
  removedFile.remove(QRegExp("&")); // perche' nel titolo del tab viene inserita una & invisibile, usata per le scorciatoie
  ((MainWindow*)parentWidget())->updateList(removedFile);
  delete widg;
}*/
